package com.dwxt.community.controller;

import com.dwxt.common.base.*;
import com.dwxt.community.entity.*;
import com.dwxt.community.service.*;
import org.apache.commons.lang3.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.web.bind.annotation.*;

/**
 * 广告 控制层
 *
 * @author
 */
@RestController
@RequestMapping("/cms/ad")
public class AdController {

    @Autowired
    private AdService adService;

    /**
     * 广告列表 or 搜索
     */
    @GetMapping("/get")
    public BaseResult get(@RequestParam(defaultValue = "1") Integer pageNum,
                          @RequestParam(defaultValue = "10")Integer pageSize,
                          String name,
                          Integer type) {
        return adService.get(pageNum, pageSize,name,type);
    }

    /**
     * showdoc
     * @catalog 社区后台管理/资讯
     * @title 资讯位置列表
     * @method  get
     * @description  资讯位置列表
     * @url /cms/ad/getAdLocation
     * @return {"status":200,"msg":"SUCCESS","data":[{"id":"10","name":"轮播图1","createTime":1585588669000,"updateTime":1585588670000,"description":"轮播图1"}]}
     */
    @GetMapping("/getAdLocation")
    public BaseResult getAdLocation() {
        return adService.getAdLocation();
    }

    /**
     * showdoc
     * @catalog 社区后台管理/资讯
     * @title 资讯类型
     * @method  get
     * @description  资讯类型
     * @url /cms/ad/getAdType
     * @return {"status":200,"msg":"SUCCESS","data":[{"id":"1","name":"广告","createTime":1585852234000,"updateTime":1585588152000,"description":"广告"}]}
     */
    @GetMapping("/getAdType")
    public BaseResult getAdType() {
        return adService.getAdType();
    }

    /**
     * showdoc
     * @catalog 社区后台管理/资讯
     * @title 新增资讯类型
     * @method  post
     * @param name 必须 String 资讯类型名
     * @param description 必须 String 资讯类型描述
     * @description  新增资讯类型
     * @url /cms/ad/insert
     * @return {"status":200,"msg":"SUCCESS","data":"null"}
     */
    @PostMapping("/insert")
    public BaseResult get(Ad ad) {
        return adService.insert(ad);
    }

    /**
     * showdoc
     * @catalog 社区后台管理/资讯
     * @title 修改资讯类型
     * @method  post
     * @param id 必须 String 资讯类型ID
     * @param name 必须 String 资讯类型名
     * @param description 必须 String 资讯类型描述
     * @description  修改资讯类型
     * @url /cms/ad/update
     * @return {"status":200,"msg":"SUCCESS","data":"null"}
     */
    @PostMapping("/update")
    public BaseResult update(Ad ad) {
        String id = ad.getId();
        if (StringUtils.isBlank(id)) {
            return BaseResult.build(StatusCode.PARAMETER_WRONG);
        }
        return adService.update(ad);
    }
    /**
     * showdoc
     * @catalog 社区后台管理/资讯
     * @title 删除资讯类型
     * @method  delete
     * @param id 必须 String 资讯类型ID
     * @description  删除资讯类型
     * @url /cms/ad/del
     * @return {"status":200,"msg":"SUCCESS","data":"null"}
     */
    @DeleteMapping("/del")
    public BaseResult del(String id) {
        if (StringUtils.isBlank(id)) {
            return BaseResult.build(StatusCode.PARAMETER_WRONG);
        }
        return adService.del(id);
    }

}
